﻿using System;
using System.Collections.Generic;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using MySql.Data.MySqlClient;
using System.Text;

namespace DA
{
    public class Usuarios : GO.BaseClass
    {
        public VO.Usuarios objVO;

        public Usuarios()
        {
            objVO = new VO.Usuarios();
            sbSQL = new StringBuilder();
        }

        public void Salvar()
        {
            // MONTA A INSTRUÇÃO SQL
            sbSQL.Append(" INSERT INTO `Usuarios` (Login, Senha, Nome, Email, DataNascimento, idLevel, idUnidade) ");
            sbSQL.Append(" VALUES('p_Login','p_Senha','p_Nome','p_Email','p_DataNascimento', p_idLevel, p_idUnidade); ");

            // SUBSTITUI OS PARÂMETROS

            sbSQL.Replace("p_Login", objVO.Login);
            sbSQL.Replace("p_Senha", objVO.Senha);
            sbSQL.Replace("p_Nome", objVO.Nome);
            sbSQL.Replace("p_Email", objVO.Email);
            sbSQL.Replace("p_DataNascimento", objVO.DataNascimento.ToString("s"));
            sbSQL.Replace("p_idLevel", objVO.IdLevel.ToString());
            sbSQL.Replace("p_idUnidade", objVO.IdUnidade.ToString());

            // EXECUTA INSTRUÇÃO
            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);

            // LIMPA VARIÁVEL
            sbSQL.Remove(0, sbSQL.Length);
        }

        public void Atualizar()
        {
            // MONTA A INSTRUÇÃO SQL
            sbSQL.Append(" UPDATE `Usuarios` SET");
            sbSQL.Append("     Login  = 'p_Login ',");
            sbSQL.Append("     Senha  = 'p_Senha ',");
            sbSQL.Append("     Nome  = 'p_Nome ',");
            sbSQL.Append("     Email  = 'p_Email ',");
            sbSQL.Append("     DataNascimento = 'p_DataNascimento', ");
            sbSQL.Append("     idLevel  = p_idLevel , ");
            sbSQL.Append("     idUnidade  = p_idUnidade ");
            sbSQL.Append(" WHERE ");
            sbSQL.Append(" 	   idUsuario   = p_idUsuario  ;        ");

            // SUBSTITUI OS PARÂMETROS
            sbSQL.Replace("p_idUsuario", objVO.IdUsuario.ToString());
            sbSQL.Replace("p_Login", objVO.Login);
            sbSQL.Replace("p_Senha", objVO.Senha);
            sbSQL.Replace("p_Nome", objVO.Nome);
            sbSQL.Replace("p_Email", objVO.Email);
            sbSQL.Replace("p_DataNascimento", objVO.DataNascimento.ToString("s"));
            sbSQL.Replace("p_idLevel", objVO.IdLevel.ToString());
            sbSQL.Replace("p_idUnidade", objVO.IdUnidade.ToString());

            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);

            sbSQL.Remove(0, sbSQL.Length);
        }

        public void Excluir()
        {
            // Deleta Rota
            sbSQL.Append(" DELETE FROM `Usuarios` ");
            sbSQL.Append(" WHERE idUsuario   = p_idUsuario  ; ");

            // SUBSTITUI OS PARÂMETROS
            sbSQL.Replace("p_idUsuario", objVO.IdUsuario.ToString());

            GO.MySQLHelper.ExecuteNonQuery(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getLogin()
        {
            sbSQL.Append(" SELECT * FROM `Usuarios` ");
            sbSQL.Append(" WHERE Login = 'p_Login' AND Senha = 'p_Senha'; ");
            sbSQL.Replace("p_Login", objVO.Login.ToString());
            sbSQL.Replace("p_Senha", objVO.Senha.ToString());

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getTodosRegistros()
        {

            sbSQL.Append(" SELECT * FROM `Usuarios`; ");

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }

        public DataSet getRegistroById()
        {
            sbSQL.Append(" SELECT * FROM `Usuarios` ");
            sbSQL.Append(" WHERE idUsuario = p_idUsuario; ");
            sbSQL.Replace("p_idUsuario", objVO.IdUsuario.ToString());

            return GO.MySQLHelper.ExecuteDataset(getConn(), sbSQL.ToString(), CommandType.Text);
        }
    }
}